package com.shujia.service;

import com.shujia.bean.Student;
import com.shujia.dao.StudengDaoImpl;
import com.shujia.dao.StudentDao;

import java.util.HashMap;

public class StudentServiceImpl implements StudentService {

    private StudentDao studengDao = new StudengDaoImpl();

    //缓存
    //hashmap是临时测试的方案，上线一般使用redis(内存数据库)
    HashMap<String, Student> cacheStudent = new HashMap<>();

    /**
     * 通过id查询学生信息
     *
     * @param id
     * @param key
     * @return
     */
    @Override
    public Student queryStudentById(String id, String key) {

        //1、判断key是否正确
        if (!"123456".equals(key)) {
            return null;
        }

        //2、通过学号查询学生信息
        Student student = studengDao.queryStudentById(id);
        return student;
    }

    /**
     * 将查询到的学生信息放入缓存中，提高查询速度
     *
     * @param id
     * @param key
     * @return
     */
    @Override
    public Student queryStudentByIdAndCache(String id, String key) {

        //1、判断key是否正确
        if (!"123456".equals(key)) {
            return null;
        }

        //2、查询缓存中的数据
        Student student = cacheStudent.get(id);

        if (student != null) {
            return student;
        }

        //3、如果缓存中没有数据，再查询数据库
        Student mysqlStudent = studengDao.queryStudentById(id);

        //4、将查询到的数据放入缓存中
        cacheStudent.put(id, mysqlStudent);

        return mysqlStudent;
    }
}
